ParticleSource粒子发射器
ParticleSource
使用粒子作为流体的发射源,在流体视觉特效里是非常常用的制作方法, Catalyst FX 提供了基于 GPU 的 Particle Source 功能,可以将海量粒子作为流体发射源,给流场提供 密度(density),温度(temperature),速度(vel),燃料(fuel) 等常用属性。在 Houdini 的制作流程中,省去了需要使用 SOP 节点进行 Particle 转 Volume 的操作。

如图(上):使用 Catalyst FX GPU Particle Source 制作的火焰枪喷射的效果,制作流程为先使用 POP 粒子调整火焰喷射大形,然后将粒子作为燃料信息提供给 Catalyst FX 解算器,进行更加精细的燃烧过程模拟,生成最终的火焰喷射效果。
Catalyst FX GPU Particle Source vs Houdini SOP VolumeRasterizeAttributes
相比传统 Houdini 自带的 SOP VolumeRasterizeAttributes 节点,Catalyst FX 使用GPU加速读取粒子数据进行采样发射,大大提高了计算效率。并且支持读取粒子半径属性,和Substep 中间帧插值等高级特性。

如图(上):分别是使 用 Houdini 自带的 SOP VolumeRasterizeAttributes 节点,将粒子转为体积作为流体发射器输入(左),直接将粒子作为 Catalyst FX 的输入(中),和原始粒子数据(右)。可以发现二者的效果是接近的,并且 Catalyst FX GPU Particle Source 的采样结果相比输入的原始发射器模型具有更好的贴合度。
计算用时开销
当前的案例一共有超过 200 万粒子的作为流体发射器的输入,以下是解算用时对比开销,在使用了 Catalyst FX GPU 粒子发射器后,整体的解算速度在当前案例中有接近 3 倍的性能提升。(GPU : MTT S4000)
| 方案 | 解算用时开销 (120 帧) |
|---|---|
| Houdini SOP VolumeRasterizeAttributes | 88 s |
| Catalys FX GPU Particle Source | 32 s (x 2.75 倍) |
Particle Source Example
我们从一个最简单的案例开始,演示 GPU Particle Source 的使用流程。

如图(上):使用Houdini 的 POP 功能制作一个最简单的抛物线粒子喷射效果,粒子发射器朝着 45度夹角方向射出粒子以后,受重力影响下落至地面,并添加 Point Wrangle 节点给粒子添加 密度(density),温度(temperature),燃料(fuel),散度(divergence)等属性。这里为了方便观察,不需要发射太多数量的粒子。

如图(上):完成粒子输入设置后,在Catalyst Solver 流体解算器节点的 Sourcing 面板选则 InputGeoType 下拉菜单为 Particle 类型输入,让解算器切换到粒子发射器读取模式。再进行适当的参数调整,点击播放按钮,可以得到 Viewport 中呈现的粒子燃烧效果。
粒子半径设置
在设置解算器 Soucing 参数面板下的 InputGeoType 下拉菜单为粒子(Particle)之后,参数右侧会出现 ParticleRadiusType 下拉菜单,用来设置粒子的半径大小,该参数一共有3种设置
| 名称 | 说明 | 默认值 |
|---|---|---|
| Constant | 固定粒子半径大小数值,单位是世界坐标系单位 | 0.2 |
| Attribute | 读取粒子半径属性,默认会读取 pscale 属性 | pscale |
| VoxelSize | 固定粒子半径大小数值,单位是当前解算容器的单个体素边长。 | 1.0 |